#include <stdio.h>
#include <wchar.h>
#include <locale.h>  // 设置本地化环境
#include "math_utils.h"

int main() {
    // 设置本地化环境以支持宽字符
    setlocale(LC_ALL, "en_US.UTF-8");

    // 测试 rad2mrad
    double angle = 7.0; // 超过 2PI 的角度
    wprintf(L"rad2mrad(%.2f) = %.2f\n", angle, rad2mrad(angle));

    // 测试 rad2rrad
    angle = -3.5; // 超过 -PI 到 PI 的角度
    wprintf(L"rad2rrad(%.2f) = %.2f\n", angle, rad2rrad(angle));

    // 测试 mod2
    double a = 10.3, b = 4.0;
    wprintf(L"mod2(%.2f, %.2f) = %.2f\n", a, b, mod2(a, b));

    // 测试 llr2xyz 和 xyz2llr
    double JW[3] = {1.0, 0.5, 2.0};
    double xyz[3], llr[3];
    llr2xyz(JW, xyz);
    xyz2llr(xyz, llr);
    wprintf(L"llr2xyz -> xyz2llr: (%.2f, %.2f, %.2f) -> (%.2f, %.2f, %.2f)\n",
            JW[0], JW[1], JW[2], llr[0], llr[1], llr[2]);

    // 测试 j1_j2
    double J1 = 1.0, W1 = 0.5, J2 = 1.1, W2 = 0.6;
    wprintf(L"j1_j2(%.2f, %.2f, %.2f, %.2f) = %.2f\n", J1, W1, J2, W2, j1_j2(J1, W1, J2, W2));

    return 0;
}